package 传智播客_黑马.java基础.LearnException;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
java.lang.Throwable : 类是java语言中所有错误或异常的超类(祖宗类)
    Exception : 编译期异常,进行编译(写代码)java程序出现的问题
        RuntimeException: 运行期异常,java程序运行过程中出现的问题
        通过处理,程序可以继续运行

        两种处理异常的方法
            1 抛出异常(程序会终止)
            2 try catch(程序不会终止)
    Error:错误
        错误就是无法治愈的,必须修改代码,程序才能继续执行
 */
public class LearnTh {
    public static void main(String[] args) /*throws ParseException*/ {//第一种处理方式,交给虚拟机
        //Exception : 编译期异常,进行编译(写代码)java程序出现的问题
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;//将一个字符串格式的日期,解析为Date格式的日期
        try {
            date = sdf.parse("1999-09-09");
        } catch (ParseException e) {
            e.printStackTrace();
        }//第二种,但是程序不会终止
        System.out.println(date);

        int[] arr = {1,2,3};
//        System.out.println(arr[3]);//IndexOutOfBoundsException

        try {
            System.out.println(arr[3]);
        } catch (Exception e) {
            System.out.println(e);
        }

        /*
        Error:错误
        int[] array = new int[1024*1024*1024];//OutOfMemoryError: Java heap space
        内存溢出的错误,创建的数组太大了,超出了JVM分配的内存.
        (对于Error只能修改代码进行处理)
         */

        System.out.println("后续代码");
    }
}
